package com.h6.crm.util.pojo.vo;

import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;

import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema.RequiredMode;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

@Schema(description = "查询合同信息实体")
@Data
public class QueryContractVO {

    @Schema(description = "合同名，默认为项目名，用以区分同一项目可能有多阶段合同")
    String name; // 合同名，默认为项目名，用以区分同一项目可能有多阶段合同

    @Schema(description = "项目名")
    String projectName;

    @Schema(description = "付款状态: 已付款，未付款")
    String paymentStatus;

    @Schema(description = "合同状态: 履行中，终止，履行完成")
    String contractStatus;

    @Schema(description = "客户名")
    String clientName;

    @Schema(description = "公司商标ID")
    Long entityId;

    @Schema(description = "签约的业务员")
    Long salesmanId;

    @Schema(description = "签约开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    Date startDate;

    @Schema(description = "签约结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    Date endDate;

    @Schema(description = "当前页", requiredMode = RequiredMode.REQUIRED)
    @NotNull(message = "当前页不能为空！")
    Integer page;

    @Schema(description = "当前页数", requiredMode = RequiredMode.REQUIRED)
    @NotNull(message = "页数不能为空！")
    Integer pageSize;
}
